{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "import joblib\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import os\n",
    "import xgboost as xgb\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 数据（0~前300到 0~前500）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "500"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "f_score = joblib.load('./f_score')\n",
    "cols = f_score[f_score!=0].index[:500]\n",
    "\n",
    "len(cols)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "x_train = joblib.load('x_trian.lz4')\n",
    "y_train = joblib.load('y_train.lz4')\n",
    "\n",
    "x_train_fs = x_train[cols]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "300\n",
      "[0]\ttrain-auc:0.81831+0.00341286\ttest-auc:0.757829+0.0043496\n",
      "[40]\ttrain-auc:0.913544+0.000583291\ttest-auc:0.820668+0.00259214\n",
      "[80]\ttrain-auc:0.939849+0.00100079\ttest-auc:0.833617+0.00296571\n",
      "[120]\ttrain-auc:0.958118+0.00122394\ttest-auc:0.840428+0.00275568\n",
      "[160]\ttrain-auc:0.971625+0.000794484\ttest-auc:0.844507+0.00254415\n",
      "[200]\ttrain-auc:0.981404+0.000816268\ttest-auc:0.847462+0.00206759\n",
      "[240]\ttrain-auc:0.987915+0.000428406\ttest-auc:0.849294+0.00162213\n",
      "[280]\ttrain-auc:0.992271+0.000484954\ttest-auc:0.850303+0.00160188\n",
      "[320]\ttrain-auc:0.995334+0.000404243\ttest-auc:0.851161+0.00167185\n",
      "[360]\ttrain-auc:0.997106+0.000298888\ttest-auc:0.851775+0.00174428\n",
      "[399]\ttrain-auc:0.998254+0.000217259\ttest-auc:0.852561+0.0018777\n",
      "310\n",
      "[0]\ttrain-auc:0.819422+0.00393445\ttest-auc:0.75677+0.00390745\n",
      "[40]\ttrain-auc:0.914208+0.000938024\ttest-auc:0.821061+0.00249597\n",
      "[80]\ttrain-auc:0.940762+0.00184853\ttest-auc:0.833689+0.00140172\n",
      "[120]\ttrain-auc:0.958278+0.00142664\ttest-auc:0.840626+0.00156857\n",
      "[160]\ttrain-auc:0.971461+0.00146182\ttest-auc:0.844659+0.00135538\n",
      "[200]\ttrain-auc:0.981443+0.00105358\ttest-auc:0.847289+0.00128483\n",
      "[240]\ttrain-auc:0.988217+0.000941948\ttest-auc:0.849157+0.00116634\n",
      "[280]\ttrain-auc:0.992479+0.000606635\ttest-auc:0.850303+0.00123659\n",
      "[320]\ttrain-auc:0.995322+0.000464915\ttest-auc:0.85123+0.00168564\n",
      "[360]\ttrain-auc:0.997165+0.000376734\ttest-auc:0.852137+0.0015936\n",
      "[399]\ttrain-auc:0.998271+0.000242266\ttest-auc:0.852667+0.00219836\n",
      "320\n",
      "[0]\ttrain-auc:0.8207+0.00436255\ttest-auc:0.758261+0.00078928\n",
      "[40]\ttrain-auc:0.914301+0.00091967\ttest-auc:0.82151+0.00364519\n",
      "[80]\ttrain-auc:0.940566+0.00113005\ttest-auc:0.832962+0.00324191\n",
      "[120]\ttrain-auc:0.95859+0.00130949\ttest-auc:0.840166+0.0033197\n",
      "[160]\ttrain-auc:0.972295+0.000746953\ttest-auc:0.844487+0.00356326\n",
      "[200]\ttrain-auc:0.981894+0.000426296\ttest-auc:0.847474+0.00323112\n",
      "[240]\ttrain-auc:0.988502+0.000644588\ttest-auc:0.849258+0.00314037\n",
      "[280]\ttrain-auc:0.992855+0.0004862\ttest-auc:0.850367+0.00291074\n",
      "[320]\ttrain-auc:0.995634+0.000397937\ttest-auc:0.851249+0.00285787\n",
      "[360]\ttrain-auc:0.997407+0.000285545\ttest-auc:0.851955+0.00241116\n",
      "[399]\ttrain-auc:0.998438+0.000207403\ttest-auc:0.852668+0.00249602\n",
      "330\n",
      "[0]\ttrain-auc:0.820015+0.00438487\ttest-auc:0.758661+0.00212573\n",
      "[40]\ttrain-auc:0.914739+0.000774048\ttest-auc:0.82104+0.00264111\n",
      "[80]\ttrain-auc:0.940989+0.00123691\ttest-auc:0.83376+0.0018688\n",
      "[120]\ttrain-auc:0.958535+0.00146628\ttest-auc:0.841175+0.00262981\n",
      "[160]\ttrain-auc:0.972294+0.000803148\ttest-auc:0.845027+0.00295065\n",
      "[200]\ttrain-auc:0.981966+0.00068086\ttest-auc:0.848236+0.00256496\n",
      "[240]\ttrain-auc:0.988793+0.000608164\ttest-auc:0.849796+0.00237809\n",
      "[280]\ttrain-auc:0.993113+0.000518033\ttest-auc:0.85107+0.00191143\n",
      "[320]\ttrain-auc:0.995839+0.000367718\ttest-auc:0.851944+0.00172086\n",
      "[360]\ttrain-auc:0.997462+0.000316659\ttest-auc:0.852701+0.00163082\n",
      "[399]\ttrain-auc:0.99849+0.000245741\ttest-auc:0.85331+0.00103936\n",
      "340\n",
      "[0]\ttrain-auc:0.820385+0.00410472\ttest-auc:0.758301+0.00257222\n",
      "[40]\ttrain-auc:0.914697+0.000939132\ttest-auc:0.821374+0.002517\n",
      "[80]\ttrain-auc:0.941083+0.00191225\ttest-auc:0.833412+0.00255411\n",
      "[120]\ttrain-auc:0.958885+0.00160959\ttest-auc:0.840397+0.00306962\n",
      "[160]\ttrain-auc:0.972596+0.000771182\ttest-auc:0.844647+0.00275069\n",
      "[200]\ttrain-auc:0.982511+0.000378714\ttest-auc:0.846942+0.00231849\n",
      "[240]\ttrain-auc:0.989074+0.000366945\ttest-auc:0.848815+0.00219045\n",
      "[280]\ttrain-auc:0.993209+0.000291468\ttest-auc:0.850235+0.00206349\n",
      "[320]\ttrain-auc:0.995903+0.00025103\ttest-auc:0.851337+0.00215477\n",
      "[360]\ttrain-auc:0.997614+7.77046e-05\ttest-auc:0.852163+0.00212908\n",
      "[399]\ttrain-auc:0.998621+9.63362e-05\ttest-auc:0.852694+0.00205663\n",
      "350\n",
      "[0]\ttrain-auc:0.821109+0.00285651\ttest-auc:0.759275+0.00294934\n",
      "[40]\ttrain-auc:0.914728+0.000966445\ttest-auc:0.819823+0.0030333\n",
      "[80]\ttrain-auc:0.940886+0.00163794\ttest-auc:0.832341+0.00263037\n",
      "[120]\ttrain-auc:0.958793+0.00144579\ttest-auc:0.839485+0.00206744\n",
      "[160]\ttrain-auc:0.97303+0.00052662\ttest-auc:0.843174+0.00168712\n",
      "[200]\ttrain-auc:0.982759+0.00042235\ttest-auc:0.846263+0.00158278\n",
      "[240]\ttrain-auc:0.98908+0.000355777\ttest-auc:0.847773+0.00116533\n",
      "[280]\ttrain-auc:0.993338+0.000511318\ttest-auc:0.848945+0.00112373\n",
      "[320]\ttrain-auc:0.995933+0.000316585\ttest-auc:0.85+0.00108526\n",
      "[360]\ttrain-auc:0.997627+0.000202469\ttest-auc:0.850545+0.00111803\n",
      "[399]\ttrain-auc:0.998642+0.00021156\ttest-auc:0.851156+0.000846788\n",
      "360\n",
      "[0]\ttrain-auc:0.821803+0.00429459\ttest-auc:0.758365+0.00281464\n",
      "[40]\ttrain-auc:0.915132+0.00103145\ttest-auc:0.821365+0.00326481\n",
      "[80]\ttrain-auc:0.941853+0.00128107\ttest-auc:0.832253+0.00278348\n",
      "[120]\ttrain-auc:0.959571+0.00152234\ttest-auc:0.839696+0.00275718\n",
      "[160]\ttrain-auc:0.973093+0.00133907\ttest-auc:0.844123+0.00221683\n",
      "[200]\ttrain-auc:0.982778+0.00124522\ttest-auc:0.846775+0.00214278\n",
      "[240]\ttrain-auc:0.989334+0.000560958\ttest-auc:0.848174+0.00225478\n",
      "[280]\ttrain-auc:0.993306+0.000437987\ttest-auc:0.849242+0.00206999\n",
      "[320]\ttrain-auc:0.995884+0.000377297\ttest-auc:0.850362+0.00208639\n",
      "[360]\ttrain-auc:0.997581+0.000325691\ttest-auc:0.851178+0.00200629\n",
      "[399]\ttrain-auc:0.9986+0.000269363\ttest-auc:0.851571+0.00215737\n",
      "370\n",
      "[0]\ttrain-auc:0.821842+0.00455337\ttest-auc:0.759051+0.00162039\n",
      "[40]\ttrain-auc:0.915314+0.000620913\ttest-auc:0.820716+0.00444514\n",
      "[80]\ttrain-auc:0.941469+0.00146159\ttest-auc:0.832553+0.00344011\n",
      "[120]\ttrain-auc:0.960216+0.001252\ttest-auc:0.840053+0.00337802\n",
      "[160]\ttrain-auc:0.973547+0.000964925\ttest-auc:0.843812+0.00307436\n",
      "[200]\ttrain-auc:0.983328+0.000583062\ttest-auc:0.846378+0.00314471\n",
      "[240]\ttrain-auc:0.989663+0.000501199\ttest-auc:0.848269+0.00271912\n",
      "[280]\ttrain-auc:0.993606+0.000428934\ttest-auc:0.849531+0.00269318\n",
      "[320]\ttrain-auc:0.996218+0.000376004\ttest-auc:0.850447+0.00257567\n",
      "[360]\ttrain-auc:0.997728+0.000254273\ttest-auc:0.851342+0.00262355\n",
      "[399]\ttrain-auc:0.998686+0.000202454\ttest-auc:0.851973+0.00241542\n",
      "380\n",
      "[0]\ttrain-auc:0.818855+0.00660857\ttest-auc:0.75708+0.00350453\n",
      "[40]\ttrain-auc:0.916184+0.000625975\ttest-auc:0.821199+0.00362015\n",
      "[80]\ttrain-auc:0.942893+0.00148221\ttest-auc:0.83281+0.00363606\n",
      "[120]\ttrain-auc:0.96014+0.00138391\ttest-auc:0.840159+0.00298581\n",
      "[160]\ttrain-auc:0.973839+0.000497326\ttest-auc:0.84396+0.00323748\n",
      "[200]\ttrain-auc:0.983678+0.000680279\ttest-auc:0.846309+0.00252089\n",
      "[240]\ttrain-auc:0.989843+0.000738778\ttest-auc:0.847984+0.00267105\n",
      "[280]\ttrain-auc:0.993821+0.000649018\ttest-auc:0.849362+0.00251332\n",
      "[320]\ttrain-auc:0.996378+0.000562129\ttest-auc:0.850607+0.00260352\n",
      "[360]\ttrain-auc:0.997875+0.000419786\ttest-auc:0.851373+0.00267224\n",
      "[399]\ttrain-auc:0.998806+0.000250691\ttest-auc:0.851853+0.00257164\n",
      "390\n",
      "[0]\ttrain-auc:0.818394+0.00632036\ttest-auc:0.75621+0.00284326\n",
      "[40]\ttrain-auc:0.914714+0.00138325\ttest-auc:0.820024+0.00205308\n",
      "[80]\ttrain-auc:0.942211+0.00189488\ttest-auc:0.83322+0.00225034\n",
      "[120]\ttrain-auc:0.960139+0.00101517\ttest-auc:0.840055+0.00223182\n",
      "[160]\ttrain-auc:0.973901+0.000863578\ttest-auc:0.844496+0.00207748\n",
      "[200]\ttrain-auc:0.983855+0.000593763\ttest-auc:0.847314+0.00155996\n",
      "[240]\ttrain-auc:0.990066+0.000464552\ttest-auc:0.848952+0.0014655\n",
      "[280]\ttrain-auc:0.994158+0.000276794\ttest-auc:0.850451+0.00133647\n",
      "[320]\ttrain-auc:0.996589+0.000198503\ttest-auc:0.850896+0.000813188\n",
      "[360]\ttrain-auc:0.998016+0.000185156\ttest-auc:0.851619+0.00061177\n",
      "[399]\ttrain-auc:0.998832+0.000139064\ttest-auc:0.852087+0.000437879\n",
      "400\n",
      "[0]\ttrain-auc:0.818482+0.00633689\ttest-auc:0.756157+0.00347923\n",
      "[40]\ttrain-auc:0.915811+0.00090661\ttest-auc:0.819472+0.00329968\n",
      "[80]\ttrain-auc:0.943109+0.00148626\ttest-auc:0.832642+0.00307608\n",
      "[120]\ttrain-auc:0.960913+0.00154291\ttest-auc:0.840232+0.00311684\n",
      "[160]\ttrain-auc:0.974594+0.00108321\ttest-auc:0.844791+0.00299273\n",
      "[200]\ttrain-auc:0.984035+0.000479742\ttest-auc:0.847337+0.00252484\n",
      "[240]\ttrain-auc:0.989986+0.000463849\ttest-auc:0.849125+0.00173457\n",
      "[280]\ttrain-auc:0.994066+0.000346036\ttest-auc:0.85071+0.00120469\n",
      "[320]\ttrain-auc:0.996554+0.000327414\ttest-auc:0.851546+0.0011272\n",
      "[360]\ttrain-auc:0.998031+0.000215176\ttest-auc:0.852182+0.000911808\n",
      "[399]\ttrain-auc:0.998878+0.000133813\ttest-auc:0.852725+0.000902571\n",
      "410\n",
      "[0]\ttrain-auc:0.818386+0.00649599\ttest-auc:0.757429+0.00175009\n",
      "[40]\ttrain-auc:0.915659+0.00142958\ttest-auc:0.818341+0.00288269\n",
      "[80]\ttrain-auc:0.9423+0.00104284\ttest-auc:0.830969+0.00245349\n",
      "[120]\ttrain-auc:0.960161+0.000706853\ttest-auc:0.838587+0.00237224\n",
      "[160]\ttrain-auc:0.973825+0.000349199\ttest-auc:0.842891+0.00224994\n",
      "[200]\ttrain-auc:0.983599+0.000710705\ttest-auc:0.845473+0.0019379\n",
      "[240]\ttrain-auc:0.990018+0.000798933\ttest-auc:0.846635+0.00184778\n",
      "[280]\ttrain-auc:0.994219+0.000574866\ttest-auc:0.848045+0.00160023\n",
      "[320]\ttrain-auc:0.996684+0.000401947\ttest-auc:0.84927+0.00144784\n",
      "[360]\ttrain-auc:0.998127+0.000300067\ttest-auc:0.849905+0.00157559\n",
      "[399]\ttrain-auc:0.998926+0.000219433\ttest-auc:0.850845+0.00136902\n",
      "420\n",
      "[0]\ttrain-auc:0.817519+0.0045868\ttest-auc:0.756041+0.0035936\n",
      "[40]\ttrain-auc:0.916216+0.000573264\ttest-auc:0.81957+0.00367608\n",
      "[80]\ttrain-auc:0.943411+0.000968973\ttest-auc:0.832337+0.00341619\n",
      "[120]\ttrain-auc:0.961778+0.000689931\ttest-auc:0.839275+0.0030099\n",
      "[160]\ttrain-auc:0.974868+0.000724924\ttest-auc:0.843742+0.00290083\n",
      "[200]\ttrain-auc:0.98437+0.000703864\ttest-auc:0.846426+0.00248401\n",
      "[240]\ttrain-auc:0.990438+0.000610158\ttest-auc:0.847736+0.00230877\n",
      "[280]\ttrain-auc:0.99453+0.000498206\ttest-auc:0.848805+0.00206759\n",
      "[320]\ttrain-auc:0.996758+0.000333675\ttest-auc:0.849601+0.00204066\n",
      "[360]\ttrain-auc:0.998231+0.000210254\ttest-auc:0.850857+0.00192033\n",
      "[399]\ttrain-auc:0.999007+0.000121609\ttest-auc:0.851731+0.00177272\n",
      "430\n",
      "[0]\ttrain-auc:0.820166+0.00145043\ttest-auc:0.756844+0.00410634\n",
      "[40]\ttrain-auc:0.917169+0.000192903\ttest-auc:0.819869+0.0026627\n",
      "[80]\ttrain-auc:0.943936+0.000912477\ttest-auc:0.832519+0.00234046\n",
      "[120]\ttrain-auc:0.96136+0.00109093\ttest-auc:0.840399+0.00184242\n",
      "[160]\ttrain-auc:0.974793+0.000737709\ttest-auc:0.844495+0.00155929\n",
      "[200]\ttrain-auc:0.984024+0.000777917\ttest-auc:0.847205+0.0017193\n",
      "[240]\ttrain-auc:0.990087+0.000589931\ttest-auc:0.848547+0.00186297\n",
      "[280]\ttrain-auc:0.994208+0.000426726\ttest-auc:0.849872+0.00194962\n",
      "[320]\ttrain-auc:0.996574+0.000307198\ttest-auc:0.850954+0.00192438\n",
      "[360]\ttrain-auc:0.998092+0.000230687\ttest-auc:0.851765+0.00186731\n",
      "[399]\ttrain-auc:0.998912+0.00016991\ttest-auc:0.852416+0.00187158\n",
      "440\n",
      "[0]\ttrain-auc:0.819935+0.00153146\ttest-auc:0.756064+0.0047247\n",
      "[40]\ttrain-auc:0.91633+0.000280843\ttest-auc:0.820322+0.00412803\n",
      "[80]\ttrain-auc:0.944189+0.00064702\ttest-auc:0.832163+0.00410535\n",
      "[120]\ttrain-auc:0.962028+0.000392898\ttest-auc:0.839652+0.00388381\n",
      "[160]\ttrain-auc:0.975315+0.000976853\ttest-auc:0.843983+0.00379566\n",
      "[200]\ttrain-auc:0.984507+0.000813204\ttest-auc:0.84632+0.00327037\n",
      "[240]\ttrain-auc:0.990613+0.000408616\ttest-auc:0.847466+0.00292732\n",
      "[280]\ttrain-auc:0.99445+0.000367864\ttest-auc:0.848454+0.00266683\n",
      "[320]\ttrain-auc:0.996834+0.000303008\ttest-auc:0.849711+0.00233204\n",
      "[360]\ttrain-auc:0.998221+0.000160464\ttest-auc:0.850444+0.00234145\n",
      "[399]\ttrain-auc:0.999023+0.000111359\ttest-auc:0.851127+0.00259866\n",
      "450\n",
      "[0]\ttrain-auc:0.819861+0.00160726\ttest-auc:0.755343+0.00491245\n",
      "[40]\ttrain-auc:0.916608+0.00169996\ttest-auc:0.818545+0.00368092\n",
      "[80]\ttrain-auc:0.943347+0.00167372\ttest-auc:0.831251+0.00307665\n",
      "[120]\ttrain-auc:0.961371+0.000958578\ttest-auc:0.838441+0.00330326\n",
      "[160]\ttrain-auc:0.975027+0.00100682\ttest-auc:0.842694+0.00372141\n",
      "[200]\ttrain-auc:0.984736+0.000384324\ttest-auc:0.845173+0.00335135\n",
      "[240]\ttrain-auc:0.990888+0.000276447\ttest-auc:0.846942+0.00314203\n",
      "[280]\ttrain-auc:0.994727+0.000301653\ttest-auc:0.848556+0.00279337\n",
      "[320]\ttrain-auc:0.997058+0.000236154\ttest-auc:0.849395+0.00292568\n",
      "[360]\ttrain-auc:0.998382+0.000185053\ttest-auc:0.850202+0.00313941\n",
      "[399]\ttrain-auc:0.999104+0.000117091\ttest-auc:0.850946+0.00313959\n",
      "460\n",
      "[0]\ttrain-auc:0.819181+0.00202688\ttest-auc:0.755063+0.00627664\n",
      "[40]\ttrain-auc:0.917701+0.000381661\ttest-auc:0.820472+0.00379596\n",
      "[80]\ttrain-auc:0.944182+0.00130984\ttest-auc:0.833432+0.0025968\n",
      "[120]\ttrain-auc:0.962062+0.00140517\ttest-auc:0.841011+0.00309575\n",
      "[160]\ttrain-auc:0.97543+0.000772825\ttest-auc:0.844992+0.00276887\n",
      "[200]\ttrain-auc:0.985045+0.000654122\ttest-auc:0.847672+0.00280488\n",
      "[240]\ttrain-auc:0.990947+0.000599249\ttest-auc:0.849626+0.00231275\n",
      "[280]\ttrain-auc:0.994823+0.000502747\ttest-auc:0.850807+0.00191634\n",
      "[320]\ttrain-auc:0.997043+0.00036055\ttest-auc:0.851641+0.00237884\n",
      "[360]\ttrain-auc:0.998397+0.000189269\ttest-auc:0.852356+0.00231542\n",
      "[399]\ttrain-auc:0.999113+0.000160156\ttest-auc:0.852839+0.00232281\n",
      "470\n",
      "[0]\ttrain-auc:0.819151+0.0041894\ttest-auc:0.757011+0.00494905\n",
      "[40]\ttrain-auc:0.916468+0.000840959\ttest-auc:0.818726+0.00322256\n",
      "[80]\ttrain-auc:0.944141+0.00113376\ttest-auc:0.831906+0.00259918\n",
      "[120]\ttrain-auc:0.962274+0.0012343\ttest-auc:0.839167+0.00215708\n",
      "[160]\ttrain-auc:0.975514+0.00124843\ttest-auc:0.842956+0.00168629\n",
      "[200]\ttrain-auc:0.985081+0.000491087\ttest-auc:0.845595+0.00161442\n",
      "[240]\ttrain-auc:0.991089+0.000614528\ttest-auc:0.847337+0.00168442\n",
      "[280]\ttrain-auc:0.994956+0.000427665\ttest-auc:0.848936+0.0015815\n",
      "[320]\ttrain-auc:0.997182+0.000359148\ttest-auc:0.849951+0.00155078\n",
      "[360]\ttrain-auc:0.998463+0.000273413\ttest-auc:0.85055+0.00133326\n",
      "[399]\ttrain-auc:0.99917+0.00017442\ttest-auc:0.851066+0.00114713\n",
      "480\n",
      "[0]\ttrain-auc:0.819086+0.00411067\ttest-auc:0.757742+0.00397017\n",
      "[40]\ttrain-auc:0.917539+0.000584855\ttest-auc:0.82025+0.00396576\n",
      "[80]\ttrain-auc:0.944588+0.00061076\ttest-auc:0.832562+0.00261796\n",
      "[120]\ttrain-auc:0.962822+0.00106755\ttest-auc:0.839105+0.00140306\n",
      "[160]\ttrain-auc:0.976009+0.000786071\ttest-auc:0.843199+0.00112262\n",
      "[200]\ttrain-auc:0.985186+0.000633997\ttest-auc:0.845343+0.00164723\n",
      "[240]\ttrain-auc:0.991136+0.000532076\ttest-auc:0.846881+0.00148596\n",
      "[280]\ttrain-auc:0.99479+0.000314704\ttest-auc:0.848139+0.00141402\n",
      "[320]\ttrain-auc:0.997045+0.00031162\ttest-auc:0.848964+0.0016772\n",
      "[360]\ttrain-auc:0.998381+0.000253279\ttest-auc:0.849493+0.00156385\n",
      "[399]\ttrain-auc:0.999104+0.000176772\ttest-auc:0.850199+0.00184531\n",
      "490\n",
      "[0]\ttrain-auc:0.819199+0.00510446\ttest-auc:0.757758+0.00431121\n",
      "[40]\ttrain-auc:0.917609+0.000794563\ttest-auc:0.818961+0.00392562\n",
      "[80]\ttrain-auc:0.944882+0.00137449\ttest-auc:0.831797+0.00296017\n",
      "[120]\ttrain-auc:0.96232+0.00124654\ttest-auc:0.83898+0.00301829\n",
      "[160]\ttrain-auc:0.976324+0.00126131\ttest-auc:0.843705+0.00314566\n",
      "[200]\ttrain-auc:0.985343+0.000654234\ttest-auc:0.846174+0.00308172\n",
      "[240]\ttrain-auc:0.991231+0.000477915\ttest-auc:0.847943+0.00316548\n",
      "[280]\ttrain-auc:0.99486+0.000422307\ttest-auc:0.849043+0.00250059\n",
      "[320]\ttrain-auc:0.997049+0.000276799\ttest-auc:0.849795+0.00260552\n",
      "[360]\ttrain-auc:0.998328+0.000214138\ttest-auc:0.850503+0.00257955\n",
      "[399]\ttrain-auc:0.999084+0.000123134\ttest-auc:0.851363+0.0028318\n",
      "500\n",
      "[0]\ttrain-auc:0.818449+0.00468413\ttest-auc:0.7576+0.00459888\n",
      "[40]\ttrain-auc:0.917223+0.00132618\ttest-auc:0.820228+0.00392332\n",
      "[80]\ttrain-auc:0.944949+0.00088506\ttest-auc:0.832742+0.00286274\n",
      "[120]\ttrain-auc:0.963586+0.00126069\ttest-auc:0.84018+0.00211279\n",
      "[160]\ttrain-auc:0.9766+0.000742667\ttest-auc:0.844321+0.00239309\n",
      "[200]\ttrain-auc:0.985304+0.000512973\ttest-auc:0.846595+0.00199663\n",
      "[240]\ttrain-auc:0.991211+0.000399832\ttest-auc:0.848447+0.00230515\n",
      "[280]\ttrain-auc:0.99489+0.000366519\ttest-auc:0.849388+0.00228548\n",
      "[320]\ttrain-auc:0.997161+0.000247678\ttest-auc:0.850273+0.00234368\n",
      "[360]\ttrain-auc:0.998386+0.000189878\ttest-auc:0.851253+0.0021958\n",
      "[399]\ttrain-auc:0.999124+0.000119074\ttest-auc:0.851887+0.00226691\n",
      "510\n",
      "[0]\ttrain-auc:0.818449+0.00468413\ttest-auc:0.7576+0.00459888\n",
      "[40]\ttrain-auc:0.917223+0.00132618\ttest-auc:0.820228+0.00392332\n",
      "[80]\ttrain-auc:0.944949+0.00088506\ttest-auc:0.832742+0.00286274\n",
      "[120]\ttrain-auc:0.963586+0.00126069\ttest-auc:0.84018+0.00211279\n",
      "[160]\ttrain-auc:0.9766+0.000742667\ttest-auc:0.844321+0.00239309\n",
      "[200]\ttrain-auc:0.985304+0.000512973\ttest-auc:0.846595+0.00199663\n",
      "[240]\ttrain-auc:0.991211+0.000399832\ttest-auc:0.848447+0.00230515\n",
      "[280]\ttrain-auc:0.99489+0.000366519\ttest-auc:0.849388+0.00228548\n",
      "[320]\ttrain-auc:0.997161+0.000247678\ttest-auc:0.850273+0.00234368\n",
      "[360]\ttrain-auc:0.998386+0.000189878\ttest-auc:0.851253+0.0021958\n",
      "[399]\ttrain-auc:0.999124+0.000119074\ttest-auc:0.851887+0.00226691\n",
      "520\n",
      "[0]\ttrain-auc:0.818449+0.00468413\ttest-auc:0.7576+0.00459888\n",
      "[40]\ttrain-auc:0.917223+0.00132618\ttest-auc:0.820228+0.00392332\n",
      "[80]\ttrain-auc:0.944949+0.00088506\ttest-auc:0.832742+0.00286274\n",
      "[120]\ttrain-auc:0.963586+0.00126069\ttest-auc:0.84018+0.00211279\n",
      "[160]\ttrain-auc:0.9766+0.000742667\ttest-auc:0.844321+0.00239309\n",
      "[200]\ttrain-auc:0.985304+0.000512973\ttest-auc:0.846595+0.00199663\n",
      "[240]\ttrain-auc:0.991211+0.000399832\ttest-auc:0.848447+0.00230515\n",
      "[280]\ttrain-auc:0.99489+0.000366519\ttest-auc:0.849388+0.00228548\n",
      "[320]\ttrain-auc:0.997161+0.000247678\ttest-auc:0.850273+0.00234368\n",
      "[360]\ttrain-auc:0.998386+0.000189878\ttest-auc:0.851253+0.0021958\n",
      "[399]\ttrain-auc:0.999124+0.000119074\ttest-auc:0.851887+0.00226691\n",
      "530\n",
      "[0]\ttrain-auc:0.818449+0.00468413\ttest-auc:0.7576+0.00459888\n",
      "[40]\ttrain-auc:0.917223+0.00132618\ttest-auc:0.820228+0.00392332\n",
      "[80]\ttrain-auc:0.944949+0.00088506\ttest-auc:0.832742+0.00286274\n",
      "[120]\ttrain-auc:0.963586+0.00126069\ttest-auc:0.84018+0.00211279\n",
      "[160]\ttrain-auc:0.9766+0.000742667\ttest-auc:0.844321+0.00239309\n",
      "[200]\ttrain-auc:0.985304+0.000512973\ttest-auc:0.846595+0.00199663\n",
      "[240]\ttrain-auc:0.991211+0.000399832\ttest-auc:0.848447+0.00230515\n",
      "[280]\ttrain-auc:0.99489+0.000366519\ttest-auc:0.849388+0.00228548\n",
      "[320]\ttrain-auc:0.997161+0.000247678\ttest-auc:0.850273+0.00234368\n",
      "[360]\ttrain-auc:0.998386+0.000189878\ttest-auc:0.851253+0.0021958\n",
      "[399]\ttrain-auc:0.999124+0.000119074\ttest-auc:0.851887+0.00226691\n",
      "540\n",
      "[0]\ttrain-auc:0.818449+0.00468413\ttest-auc:0.7576+0.00459888\n",
      "[40]\ttrain-auc:0.917223+0.00132618\ttest-auc:0.820228+0.00392332\n",
      "[80]\ttrain-auc:0.944949+0.00088506\ttest-auc:0.832742+0.00286274\n",
      "[120]\ttrain-auc:0.963586+0.00126069\ttest-auc:0.84018+0.00211279\n",
      "[160]\ttrain-auc:0.9766+0.000742667\ttest-auc:0.844321+0.00239309\n",
      "[200]\ttrain-auc:0.985304+0.000512973\ttest-auc:0.846595+0.00199663\n",
      "[240]\ttrain-auc:0.991211+0.000399832\ttest-auc:0.848447+0.00230515\n",
      "[280]\ttrain-auc:0.99489+0.000366519\ttest-auc:0.849388+0.00228548\n",
      "[320]\ttrain-auc:0.997161+0.000247678\ttest-auc:0.850273+0.00234368\n",
      "[360]\ttrain-auc:0.998386+0.000189878\ttest-auc:0.851253+0.0021958\n",
      "[399]\ttrain-auc:0.999124+0.000119074\ttest-auc:0.851887+0.00226691\n"
     ]
    }
   ],
   "source": [
    "for i in range(300,len(cols)+50,10):\n",
    "    print(i)\n",
    "    x = x_train_fs.iloc[:,:i].values\n",
    "    y = y_train\n",
    "    params={\n",
    "        'booster':'gbtree',\n",
    "        'objective': 'binary:logistic',\n",
    "        'early_stopping_rounds':10,\n",
    "        'scale_pos_weight': float(len(y)-np.sum(y))/float(np.sum(y)),  # 负例样本除以正例样本\n",
    "        'eval_metric': 'auc',\n",
    "        'gamma':0.1,\n",
    "        'max_depth':6,\n",
    "        'lambda':100,\n",
    "        'subsample':0.9,\n",
    "        'colsample_bytree':0.9,\n",
    "        'eta': 0.04,\n",
    "        'seed':2018,\n",
    "        'nthread':18\n",
    "            }\n",
    "    dtrain = xgb.DMatrix(x,y)\n",
    "    eval_hist = xgb.cv(params,dtrain,num_boost_round=400,nfold=3,verbose_eval =40)\n",
    "    joblib.dump(eval_hist,'./fine_eval/eval_hist_{}'.format(i))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# show auc"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "file_names = os.listdir('./fine_eval/')\n",
    "file_names = sorted(file_names,key=lambda x:int(x.split('_')[-1]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "auc_df = pd.DataFrame()\n",
    "num_list = []\n",
    "auc_mean_list = []\n",
    "auc_std_list = []\n",
    "for file in file_names:\n",
    "    num_list.append(int(file.split('_')[-1]))\n",
    "    tmp = joblib.load('./fine_eval/{}'.format(file)).iloc[-1,[0,1]]\n",
    "    auc_mean_list.append(tmp['test-auc-mean'])\n",
    "    auc_std_list.append(tmp['test-auc-std'])\n",
    "auc_df['num'] = num_list\n",
    "auc_df['test-auc-mean'] = auc_mean_list\n",
    "auc_df['test-auc-std'] = auc_std_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f7a566dc240>]"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure()\n",
    "plt.plot(auc_df['num'],auc_df['test-auc-mean'])\n",
    "plt.hlines(auc_df['test-auc-mean'][0],300,550,'r')\n",
    "plt.figure()\n",
    "plt.plot(auc_df['num'],auc_df['test-auc-std'])\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 330"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['./model/xgb_model_330']"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = x_train_fs.iloc[:,:330].values\n",
    "y = y_train\n",
    "params={\n",
    "    'booster':'gbtree',\n",
    "    'objective': 'binary:logistic',\n",
    "    'early_stopping_rounds':10,\n",
    "    'scale_pos_weight': float(len(y)-np.sum(y))/float(np.sum(y)),  # 负例样本除以正例样本\n",
    "    'eval_metric': 'auc',\n",
    "    'gamma':0.1,\n",
    "    'max_depth':6,\n",
    "    'lambda':100,\n",
    "    'subsample':0.9,\n",
    "    'colsample_bytree':0.9,\n",
    "    'eta': 0.04,\n",
    "    'seed':2018,\n",
    "    'nthread':18\n",
    "        }\n",
    "dtrain = xgb.DMatrix(x,y)\n",
    "xgb_model_330 = xgb.train(params,dtrain,num_boost_round=400,verbose_eval =40)\n",
    "joblib.dump(xgb_model_330,'./model/xgb_model_330')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 400"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['./model/xgb_model_400']"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = x_train_fs.iloc[:,:400].values\n",
    "y = y_train\n",
    "params={\n",
    "    'booster':'gbtree',\n",
    "    'objective': 'binary:logistic',\n",
    "    'early_stopping_rounds':10,\n",
    "    'scale_pos_weight': float(len(y)-np.sum(y))/float(np.sum(y)),  # 负例样本除以正例样本\n",
    "    'eval_metric': 'auc',\n",
    "    'gamma':0.1,\n",
    "    'max_depth':6,\n",
    "    'lambda':100,\n",
    "    'subsample':0.9,\n",
    "    'colsample_bytree':0.9,\n",
    "    'eta': 0.04,\n",
    "    'seed':2018,\n",
    "    'nthread':18\n",
    "        }\n",
    "dtrain = xgb.DMatrix(x,y)\n",
    "xgb_model_400 = xgb.train(params,dtrain,num_boost_round=400,verbose_eval =40)\n",
    "joblib.dump(xgb_model_400,'./model/xgb_model_400')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 460"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['./model/xgb_model_460']"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = x_train_fs.iloc[:,:460].values\n",
    "y = y_train\n",
    "params={\n",
    "    'booster':'gbtree',\n",
    "    'objective': 'binary:logistic',\n",
    "    'early_stopping_rounds':10,\n",
    "    'scale_pos_weight': float(len(y)-np.sum(y))/float(np.sum(y)),  # 负例样本除以正例样本\n",
    "    'eval_metric': 'auc',\n",
    "    'gamma':0.1,\n",
    "    'max_depth':6,\n",
    "    'lambda':100,\n",
    "    'subsample':0.9,\n",
    "    'colsample_bytree':0.9,\n",
    "    'eta': 0.04,\n",
    "    'seed':2018,\n",
    "    'nthread':18\n",
    "        }\n",
    "dtrain = xgb.DMatrix(x,y)\n",
    "xgb_model_460 = xgb.train(params,dtrain,num_boost_round=400,verbose_eval =40)\n",
    "joblib.dump(xgb_model_460,'./model/xgb_model_460')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 模型二 (500~)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "600\n",
      "[0]\ttrain-auc:0.764888+0.00223486\ttest-auc:0.696167+0.012137\n",
      "[40]\ttrain-auc:0.882519+0.00201686\ttest-auc:0.757873+0.00907639\n",
      "[80]\ttrain-auc:0.922574+0.00173975\ttest-auc:0.770677+0.00759141\n",
      "[120]\ttrain-auc:0.946935+0.00150287\ttest-auc:0.776477+0.00680245\n",
      "[160]\ttrain-auc:0.963539+0.00140833\ttest-auc:0.780447+0.00658081\n",
      "[200]\ttrain-auc:0.974327+0.00141237\ttest-auc:0.781962+0.00638327\n",
      "[240]\ttrain-auc:0.982148+0.0012091\ttest-auc:0.782973+0.00593591\n",
      "[280]\ttrain-auc:0.988045+0.00077398\ttest-auc:0.783279+0.00592713\n",
      "[320]\ttrain-auc:0.992081+0.000721751\ttest-auc:0.783108+0.00608786\n",
      "[360]\ttrain-auc:0.99474+0.000674752\ttest-auc:0.783297+0.00587744\n",
      "[399]\ttrain-auc:0.996484+0.000460566\ttest-auc:0.783248+0.00578215\n",
      "650\n",
      "[0]\ttrain-auc:0.770327+0.00380018\ttest-auc:0.694874+0.00470624\n",
      "[40]\ttrain-auc:0.893603+0.00231789\ttest-auc:0.769425+0.00641944\n",
      "[80]\ttrain-auc:0.931639+0.00144702\ttest-auc:0.782571+0.00652964\n",
      "[120]\ttrain-auc:0.95546+0.00130251\ttest-auc:0.788851+0.00681717\n",
      "[160]\ttrain-auc:0.970606+0.00126504\ttest-auc:0.792554+0.00664227\n",
      "[200]\ttrain-auc:0.980551+0.000824684\ttest-auc:0.794554+0.0066704\n",
      "[240]\ttrain-auc:0.987611+0.000501422\ttest-auc:0.796064+0.00628173\n",
      "[280]\ttrain-auc:0.992145+0.000272429\ttest-auc:0.796244+0.00624474\n",
      "[320]\ttrain-auc:0.995053+0.000277568\ttest-auc:0.797299+0.00625086\n",
      "[360]\ttrain-auc:0.996803+0.000165354\ttest-auc:0.797477+0.00612017\n",
      "[399]\ttrain-auc:0.998031+0.00017601\ttest-auc:0.797519+0.00595531\n",
      "700\n",
      "[0]\ttrain-auc:0.777283+0.00502556\ttest-auc:0.702667+0.00498007\n",
      "[40]\ttrain-auc:0.898027+0.00109581\ttest-auc:0.771735+0.00518237\n",
      "[80]\ttrain-auc:0.937336+0.00136169\ttest-auc:0.786211+0.00578054\n",
      "[120]\ttrain-auc:0.960384+0.0011045\ttest-auc:0.791947+0.0065034\n",
      "[160]\ttrain-auc:0.974436+0.000952104\ttest-auc:0.795332+0.00608839\n",
      "[200]\ttrain-auc:0.983709+0.000826798\ttest-auc:0.79704+0.00570068\n",
      "[240]\ttrain-auc:0.98976+0.000646352\ttest-auc:0.798454+0.00516059\n",
      "[280]\ttrain-auc:0.993891+0.000436088\ttest-auc:0.799167+0.00451174\n",
      "[320]\ttrain-auc:0.996358+0.000263465\ttest-auc:0.799892+0.00462429\n",
      "[360]\ttrain-auc:0.997875+0.000185638\ttest-auc:0.800784+0.00480326\n",
      "[399]\ttrain-auc:0.998728+0.000127875\ttest-auc:0.80121+0.00468614\n",
      "750\n",
      "[0]\ttrain-auc:0.780762+0.00636382\ttest-auc:0.701393+0.00769681\n",
      "[40]\ttrain-auc:0.900112+0.00207689\ttest-auc:0.775477+0.00401722\n",
      "[80]\ttrain-auc:0.940676+0.000997683\ttest-auc:0.789856+0.0042978\n",
      "[120]\ttrain-auc:0.962525+0.000805341\ttest-auc:0.796651+0.00361181\n",
      "[160]\ttrain-auc:0.97634+0.0011673\ttest-auc:0.800663+0.00359149\n",
      "[200]\ttrain-auc:0.985255+0.000992635\ttest-auc:0.802282+0.00314754\n",
      "[240]\ttrain-auc:0.991+0.00105469\ttest-auc:0.80388+0.00252031\n",
      "[280]\ttrain-auc:0.99461+0.000759252\ttest-auc:0.804538+0.00265353\n",
      "[320]\ttrain-auc:0.997011+0.000508062\ttest-auc:0.804777+0.00253481\n",
      "[360]\ttrain-auc:0.998289+0.000330914\ttest-auc:0.804975+0.00241467\n",
      "[399]\ttrain-auc:0.999012+0.000253523\ttest-auc:0.805273+0.0024465\n",
      "800\n",
      "[0]\ttrain-auc:0.782557+0.00160667\ttest-auc:0.710371+0.00709092\n",
      "[40]\ttrain-auc:0.903811+0.00158125\ttest-auc:0.779577+0.00588717\n",
      "[80]\ttrain-auc:0.943234+0.000411237\ttest-auc:0.794286+0.00507795\n",
      "[120]\ttrain-auc:0.965575+0.00112227\ttest-auc:0.800652+0.00463761\n",
      "[160]\ttrain-auc:0.979011+0.00122552\ttest-auc:0.803976+0.00438179\n",
      "[200]\ttrain-auc:0.987361+0.00116682\ttest-auc:0.806714+0.00394175\n",
      "[240]\ttrain-auc:0.992659+0.000783181\ttest-auc:0.80843+0.00375075\n",
      "[280]\ttrain-auc:0.99571+0.00058642\ttest-auc:0.809162+0.00365039\n",
      "[320]\ttrain-auc:0.997647+0.000422848\ttest-auc:0.809815+0.00402728\n",
      "[360]\ttrain-auc:0.998676+0.00027372\ttest-auc:0.810294+0.00426095\n",
      "[399]\ttrain-auc:0.999259+0.00016139\ttest-auc:0.810702+0.00454108\n",
      "850\n",
      "[0]\ttrain-auc:0.783795+0.00592849\ttest-auc:0.710398+0.00323478\n",
      "[40]\ttrain-auc:0.909177+0.00134878\ttest-auc:0.782984+0.00815362\n",
      "[80]\ttrain-auc:0.946087+0.000662363\ttest-auc:0.796078+0.00725186\n",
      "[120]\ttrain-auc:0.967355+0.000414393\ttest-auc:0.802761+0.00622501\n",
      "[160]\ttrain-auc:0.979375+0.000430015\ttest-auc:0.806482+0.00632227\n",
      "[200]\ttrain-auc:0.98749+0.000497728\ttest-auc:0.808692+0.00567516\n",
      "[240]\ttrain-auc:0.992616+0.000558386\ttest-auc:0.809977+0.00611488\n",
      "[280]\ttrain-auc:0.995674+0.000553158\ttest-auc:0.811409+0.00631071\n",
      "[320]\ttrain-auc:0.997536+0.000470868\ttest-auc:0.811864+0.00583983\n",
      "[360]\ttrain-auc:0.998595+0.000329561\ttest-auc:0.812464+0.00643555\n",
      "[399]\ttrain-auc:0.999197+0.000226691\ttest-auc:0.812424+0.00650047\n",
      "900\n",
      "[0]\ttrain-auc:0.790605+0.00161326\ttest-auc:0.714939+0.00251699\n",
      "[40]\ttrain-auc:0.909782+0.00348495\ttest-auc:0.781573+0.00573051\n",
      "[80]\ttrain-auc:0.946396+0.00169382\ttest-auc:0.795506+0.00592926\n",
      "[120]\ttrain-auc:0.96752+0.000797144\ttest-auc:0.801638+0.00525672\n",
      "[160]\ttrain-auc:0.98076+0.0003125\ttest-auc:0.805653+0.00575555\n",
      "[200]\ttrain-auc:0.988546+0.000737296\ttest-auc:0.808248+0.00512416\n",
      "[240]\ttrain-auc:0.993257+0.000615238\ttest-auc:0.810206+0.00528193\n",
      "[280]\ttrain-auc:0.996181+0.000526023\ttest-auc:0.811519+0.00502792\n",
      "[320]\ttrain-auc:0.997904+0.000346204\ttest-auc:0.811532+0.00549049\n",
      "[360]\ttrain-auc:0.998868+0.000187965\ttest-auc:0.812557+0.0055057\n",
      "[399]\ttrain-auc:0.999367+0.000131828\ttest-auc:0.812399+0.0056454\n",
      "950\n",
      "[0]\ttrain-auc:0.792334+0.000500788\ttest-auc:0.726033+0.00157263\n",
      "[40]\ttrain-auc:0.912679+0.00316604\ttest-auc:0.787424+0.00464871\n",
      "[80]\ttrain-auc:0.948+0.00133713\ttest-auc:0.798504+0.00463482\n",
      "[120]\ttrain-auc:0.968089+0.000745886\ttest-auc:0.805571+0.0051211\n",
      "[160]\ttrain-auc:0.980838+0.000235059\ttest-auc:0.80882+0.00448139\n",
      "[200]\ttrain-auc:0.988599+0.00052031\ttest-auc:0.81126+0.00501487\n",
      "[240]\ttrain-auc:0.993193+0.000502248\ttest-auc:0.812477+0.00512843\n",
      "[280]\ttrain-auc:0.996239+0.00051743\ttest-auc:0.813679+0.00549742\n",
      "[320]\ttrain-auc:0.997976+0.000277619\ttest-auc:0.814433+0.00533694\n",
      "[360]\ttrain-auc:0.998936+0.000163048\ttest-auc:0.815026+0.00523193\n",
      "[399]\ttrain-auc:0.999436+0.0001347\ttest-auc:0.815542+0.00520113\n",
      "1000\n",
      "[0]\ttrain-auc:0.793324+0.00217671\ttest-auc:0.722693+0.00149898\n",
      "[40]\ttrain-auc:0.913187+0.00178621\ttest-auc:0.786411+0.00299587\n",
      "[80]\ttrain-auc:0.949001+0.00122467\ttest-auc:0.799595+0.00290033\n",
      "[120]\ttrain-auc:0.969224+0.000794946\ttest-auc:0.805492+0.00348968\n",
      "[160]\ttrain-auc:0.981758+0.000179823\ttest-auc:0.809159+0.00364964\n",
      "[200]\ttrain-auc:0.989313+0.000300314\ttest-auc:0.811254+0.00391939\n",
      "[240]\ttrain-auc:0.99397+0.000267595\ttest-auc:0.812798+0.0042956\n",
      "[280]\ttrain-auc:0.996685+0.000258211\ttest-auc:0.813744+0.00432707\n",
      "[320]\ttrain-auc:0.998215+0.000191862\ttest-auc:0.814357+0.00495057\n",
      "[360]\ttrain-auc:0.999032+0.000117867\ttest-auc:0.815033+0.00499084\n",
      "[399]\ttrain-auc:0.9995+8.30221e-05\ttest-auc:0.815427+0.00498853\n",
      "1050\n",
      "[0]\ttrain-auc:0.801653+0.00350557\ttest-auc:0.726927+0.00107969\n",
      "[40]\ttrain-auc:0.918105+0.00174601\ttest-auc:0.793345+0.00222213\n",
      "[80]\ttrain-auc:0.951516+0.00100593\ttest-auc:0.804342+0.00222913\n",
      "[120]\ttrain-auc:0.97039+0.000554715\ttest-auc:0.809572+0.00211964\n",
      "[160]\ttrain-auc:0.982764+0.000265619\ttest-auc:0.812957+0.00218912\n",
      "[200]\ttrain-auc:0.99021+0.000361207\ttest-auc:0.8149+0.0017588\n",
      "[240]\ttrain-auc:0.994513+0.000262426\ttest-auc:0.816713+0.00186437\n",
      "[280]\ttrain-auc:0.997039+0.000172432\ttest-auc:0.817735+0.0018708\n",
      "[320]\ttrain-auc:0.998455+0.000125518\ttest-auc:0.818546+0.00209993\n",
      "[360]\ttrain-auc:0.999235+9.51875e-05\ttest-auc:0.818909+0.00188314\n",
      "[399]\ttrain-auc:0.999616+5.11881e-05\ttest-auc:0.818985+0.00214359\n",
      "1100\n",
      "[0]\ttrain-auc:0.801315+0.00144843\ttest-auc:0.726699+0.00452496\n",
      "[40]\ttrain-auc:0.918328+0.00113757\ttest-auc:0.794149+0.00341734\n",
      "[80]\ttrain-auc:0.952681+0.000608612\ttest-auc:0.806397+0.00307402\n",
      "[120]\ttrain-auc:0.971307+0.000389788\ttest-auc:0.811983+0.00387864\n",
      "[160]\ttrain-auc:0.982927+0.000576006\ttest-auc:0.816054+0.00492945\n",
      "[200]\ttrain-auc:0.990412+0.000109436\ttest-auc:0.81793+0.00546739\n",
      "[240]\ttrain-auc:0.994684+9.09212e-06\ttest-auc:0.81964+0.00554331\n",
      "[280]\ttrain-auc:0.99717+0.000146133\ttest-auc:0.820786+0.00537365\n",
      "[320]\ttrain-auc:0.998593+0.000104148\ttest-auc:0.821568+0.00498251\n",
      "[360]\ttrain-auc:0.999263+4.53211e-05\ttest-auc:0.82255+0.00451676\n",
      "[399]\ttrain-auc:0.999635+3.19826e-05\ttest-auc:0.822967+0.00430699\n",
      "1150\n",
      "[0]\ttrain-auc:0.803324+0.00473182\ttest-auc:0.725999+0.00365246\n",
      "[40]\ttrain-auc:0.919689+0.00194837\ttest-auc:0.790169+0.00473917\n",
      "[80]\ttrain-auc:0.953055+0.000298272\ttest-auc:0.80238+0.00492526\n",
      "[120]\ttrain-auc:0.971542+0.000367832\ttest-auc:0.809723+0.00413693\n",
      "[160]\ttrain-auc:0.983534+0.000460603\ttest-auc:0.813296+0.00343364\n",
      "[200]\ttrain-auc:0.99087+0.000336722\ttest-auc:0.816118+0.00413248\n",
      "[240]\ttrain-auc:0.995061+0.000377657\ttest-auc:0.818146+0.00431036\n",
      "[280]\ttrain-auc:0.997408+0.000337517\ttest-auc:0.819155+0.0042744\n",
      "[320]\ttrain-auc:0.998702+0.000226127\ttest-auc:0.820239+0.00391182\n",
      "[360]\ttrain-auc:0.999338+0.000125889\ttest-auc:0.820501+0.00353663\n",
      "[399]\ttrain-auc:0.999677+6.22914e-05\ttest-auc:0.821046+0.00371377\n",
      "1200\n",
      "[0]\ttrain-auc:0.804238+0.00342785\ttest-auc:0.729343+0.00214565\n",
      "[40]\ttrain-auc:0.920689+0.00180924\ttest-auc:0.791981+0.00179366\n",
      "[80]\ttrain-auc:0.954093+0.000656295\ttest-auc:0.80292+0.00143838\n",
      "[120]\ttrain-auc:0.972564+0.000977728\ttest-auc:0.809743+0.00213553\n",
      "[160]\ttrain-auc:0.984073+0.000834318\ttest-auc:0.814583+0.00152556\n",
      "[200]\ttrain-auc:0.991205+0.000547636\ttest-auc:0.816983+0.00156759\n",
      "[240]\ttrain-auc:0.995344+0.000357802\ttest-auc:0.8185+0.0015089\n",
      "[280]\ttrain-auc:0.997627+0.000195493\ttest-auc:0.819532+0.00180928\n",
      "[320]\ttrain-auc:0.998785+8.73473e-05\ttest-auc:0.820456+0.00179005\n",
      "[360]\ttrain-auc:0.999431+1.7442e-05\ttest-auc:0.821002+0.00172842\n",
      "[399]\ttrain-auc:0.999716+1.52534e-05\ttest-auc:0.821599+0.00188672\n",
      "1250\n",
      "[0]\ttrain-auc:0.80671+0.00343481\ttest-auc:0.723974+0.00800698\n",
      "[40]\ttrain-auc:0.921706+0.00137198\ttest-auc:0.791281+0.00240522\n",
      "[80]\ttrain-auc:0.954107+0.000543162\ttest-auc:0.803393+0.00355919\n",
      "[120]\ttrain-auc:0.972836+0.000746714\ttest-auc:0.809813+0.00287539\n",
      "[160]\ttrain-auc:0.98435+0.000812739\ttest-auc:0.812991+0.002696\n",
      "[200]\ttrain-auc:0.991226+0.000787493\ttest-auc:0.815113+0.00288498\n",
      "[240]\ttrain-auc:0.995317+0.000535202\ttest-auc:0.816742+0.00288219\n",
      "[280]\ttrain-auc:0.99763+0.00033408\ttest-auc:0.817701+0.00294298\n",
      "[320]\ttrain-auc:0.998798+0.000216029\ttest-auc:0.818648+0.00279268\n",
      "[360]\ttrain-auc:0.999436+0.000106787\ttest-auc:0.819421+0.00275483\n",
      "[399]\ttrain-auc:0.999725+6.28384e-05\ttest-auc:0.820218+0.00279867\n",
      "1300\n",
      "[0]\ttrain-auc:0.807067+0.00412762\ttest-auc:0.719039+0.00739592\n",
      "[40]\ttrain-auc:0.920961+0.00224846\ttest-auc:0.792908+0.00383596\n",
      "[80]\ttrain-auc:0.954095+0.000419646\ttest-auc:0.804807+0.00425363\n",
      "[120]\ttrain-auc:0.972964+0.000397791\ttest-auc:0.811817+0.00422018\n",
      "[160]\ttrain-auc:0.984488+0.000706223\ttest-auc:0.815272+0.00406128\n",
      "[200]\ttrain-auc:0.991717+0.000421406\ttest-auc:0.817534+0.00378597\n",
      "[240]\ttrain-auc:0.995405+0.000326539\ttest-auc:0.818904+0.00386084\n",
      "[280]\ttrain-auc:0.997628+0.000239351\ttest-auc:0.820576+0.00367018\n",
      "[320]\ttrain-auc:0.998804+0.000119808\ttest-auc:0.821334+0.00424319\n",
      "[360]\ttrain-auc:0.999425+5.08746e-05\ttest-auc:0.821576+0.00447923\n",
      "[399]\ttrain-auc:0.999708+2.08327e-05\ttest-auc:0.82174+0.00411408\n",
      "1350\n",
      "[0]\ttrain-auc:0.805886+0.00629611\ttest-auc:0.727441+0.00339007\n",
      "[40]\ttrain-auc:0.921739+0.00154684\ttest-auc:0.794659+0.00151787\n",
      "[80]\ttrain-auc:0.955612+0.000389959\ttest-auc:0.805766+0.0026017\n",
      "[120]\ttrain-auc:0.973933+0.000324044\ttest-auc:0.812183+0.00257771\n",
      "[160]\ttrain-auc:0.9852+0.000304767\ttest-auc:0.815758+0.00208411\n",
      "[200]\ttrain-auc:0.991896+0.000259077\ttest-auc:0.817629+0.00248601\n",
      "[240]\ttrain-auc:0.995679+0.00026452\ttest-auc:0.819137+0.00251862\n",
      "[280]\ttrain-auc:0.997748+0.000220214\ttest-auc:0.82039+0.00268963\n",
      "[320]\ttrain-auc:0.998857+0.000112834\ttest-auc:0.821153+0.00232227\n",
      "[360]\ttrain-auc:0.999462+3.81779e-05\ttest-auc:0.821628+0.00224101\n",
      "[399]\ttrain-auc:0.999746+1.56418e-05\ttest-auc:0.821829+0.00249664\n",
      "1400\n",
      "[0]\ttrain-auc:0.80846+0.00299266\ttest-auc:0.724338+0.00547798\n",
      "[40]\ttrain-auc:0.922033+0.00132201\ttest-auc:0.790915+0.00362411\n",
      "[80]\ttrain-auc:0.955126+0.000471751\ttest-auc:0.801855+0.00307654\n",
      "[120]\ttrain-auc:0.973375+0.000607907\ttest-auc:0.808511+0.00252683\n",
      "[160]\ttrain-auc:0.984807+0.000298961\ttest-auc:0.812607+0.00247019\n"
     ]
    }
   ],
   "source": [
    "f_score = joblib.load('./f_score')\n",
    "cols = f_score[f_score!=0].index\n",
    "x_train_fs = x_train[cols] \n",
    "for i in range(600,400+len(cols)+50,50):\n",
    "    print(i)\n",
    "    x = x_train_fs.iloc[:,500:i].values\n",
    "    y = y_train\n",
    "    params={\n",
    "        'booster':'gbtree',\n",
    "        'objective': 'binary:logistic',\n",
    "        'early_stopping_rounds':10,\n",
    "        'scale_pos_weight': float(len(y)-np.sum(y))/float(np.sum(y)),  # 负例样本除以正例样本\n",
    "        'eval_metric': 'auc',\n",
    "        'gamma':0.1,\n",
    "        'max_depth':6,\n",
    "        'lambda':100,\n",
    "        'subsample':0.9,\n",
    "        'colsample_bytree':0.9,\n",
    "        'eta': 0.04,\n",
    "        'seed':2018,\n",
    "        'nthread':18\n",
    "            }\n",
    "    dtrain = xgb.DMatrix(x,y)\n",
    "    eval_hist = xgb.cv(params,dtrain,num_boost_round=400,nfold=3,verbose_eval =40)\n",
    "    joblib.dump(eval_hist,'./rough_eval1/eval_hist_{}'.format(i))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
